\section{Conclusion}
\label{sec:conclusion}

In this work we have presented a serial implementation of particle simulation that improves upon the naive $O(n^2)$ implementation and runs in $O(n\log{n})$. In addition we have provided a parallel implementation of this improved version that uses OpenMP to parallelize across processors.  We have provided an explanation of the data structures used to achieve improved execution time in the serial case as well as an analysis of where time was spent executing the parallel implementation.  Lastly, we end with a discussion of various parallel programming frameworks.